package com.yunxi.otd.pojo;

import com.fasterxml.jackson.databind.annotation.JsonDeserialize;
import com.yunxi.core.web.DateJsonDeserializer;
import com.yunxi.vehicle.pojo.VehicleProductViewVO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import lombok.Data;
import lombok.EqualsAndHashCode;

/**
 * <p>
 * 生产计划变更申请
 * </p>
 *
 * @author XUQI
 * @since 2019-05-25
 */
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value = "OtdPlanChangeApply对象", description = "生产计划变更申请")
public class OtdPlanChangeApplyVO implements Serializable {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value = "标记：用来区分前台查询页面，1:申请  2:审核")
    private String mark;

    @ApiModelProperty(value = "变更申请ID")
    private String planChangeApplyId;

    @ApiModelProperty(value = "变更申请CODE")
    private String planChangeApplyCode;

    @ApiModelProperty(value = "状态")
    private String state;

    @ApiModelProperty(value = "生产计划号")
    private String planNo;

    @ApiModelProperty(value = "生产计划号")
    private List<String> planNoList;

    @ApiModelProperty(value = "变更前产品CODE")
    private String oldProductCode;

    private VehicleProductViewVO oldProduct;

    @ApiModelProperty(value = "变更后产品CODE")
    private String newProductCode;

    private VehicleProductViewVO newProduct;

    @ApiModelProperty(value = "变更前选装包CODE")
    private String oldCustomPackCode;

    @ApiModelProperty(value = "变更前选装包名称")
    private String oldCustomPackName;

    @ApiModelProperty(value = "变更后选装包CODE")
    private String newCustomPackCode;

    @ApiModelProperty(value = "变更后选装包名称")
    private String newCustomPackName;

    @ApiModelProperty(value = "变更类型：U：UPDATE修改 D:del 删除")
    private String changeType;

    @ApiModelProperty(value = "驳回原因")
    private String rejectReason;

    @ApiModelProperty(value = "创建人")
    private String createBy;

    @JsonDeserialize(using = DateJsonDeserializer.class)
    @ApiModelProperty(value = "创建时间")
    private Date createDate;

    @ApiModelProperty(value = "最后修改人")
    private String updateBy;

    @JsonDeserialize(using = DateJsonDeserializer.class)
    @ApiModelProperty(value = "最后修改时间")
    private Date updateDate;

    @ApiModelProperty(value = "版本号")
    private Integer version;

    @ApiModelProperty(value = "接口传送标识")
    private Integer isSend;

    @ApiModelProperty(value = "是否删除")
    private Integer isDel;

}
